01|这场架,先不是技术架
很多人今天回头看 CSS,会觉得它不过是一门样式语言。
选择器、属性、值、花括号。
可在 1994 年,CSS 还没出生的时候,大家先吵起来的,并不是语法该怎么写。
而是一个更原始的问题:
网页到底该听谁的?
听作者的?
还是听用户的?
这问题你今天看着像抽象哲学,当年却非常具体。因为那时候越来越多写网页的人发现,HTML 能告诉浏览器“这是一段标题”“这是一段正文”,却很难告诉它:
“请你把这一页弄得好看一点。”
于是抱怨开始冒出来。
最经典的一次,落在了 www-talk 邮件列表里。
02|Andreessen 先泼了一盆冷水
1994 年初,有人在 www-talk 上问:网页能不能像 Word 一样,把字体、颜色、版面控制得更细一点?
回这封信的人,是 Marc Andreessen。
对,就是后来网景那位。
当时他还在 Mosaic 那条线上,语气也很工程师:不耐烦,干脆,带点“这事你们别想了”的味道。Lie 和 Bos 后来在书里引用过那段意思,归根结底就是一句:
你们想像桌面排版软件那样控制网页长什么样?对不起,没门。
这不是一句小情绪。
它其实很能代表 Web 早期的一种气质:网页首先是文档,不是画册;结构比外观重要;浏览器应该自己决定怎么把内容显示给用户。
问题是,另一股力量也已经在长。
越来越多作者不满足于“能发出去就行”,他们想要更像杂志、更像海报、更像作品的网页。也就是说,Web 正在从“能看”往“好看”挪。
一旦这股欲望起来,Andreessen 那种“没门”,迟早会顶不住。
03|然后,剧情在三天里突然加速
真正像电视剧开场的一段,发生在 1994 年 10 月。
先是 10 月 10 日。
在 CERN 工作的 Håkon Wium Lie 放出了一份草案:
《Cascading HTML style sheets — a proposal》
它很早,很稚嫩,也远不是今天的 CSS 长相。可它干了一件特别关键的事:
它第一次把“网页样式”这件一直散在抱怨里的需求,整理成了可以讨论、可以改进、可以继续做下去的正式提案。
然后是 10 月 13 日。
Andreessen 宣布 Mozilla 的首个 beta 可供测试。这个 Mozilla 后来会一路演化成 Netscape Navigator。更妙的是,这个 beta 里已经有了像 <center> 这样的新标签。
你看,戏剧性就在这里。
一边有人在说:别把网页当桌面排版玩具。
另一边,浏览器已经开始往 HTML 里塞控制外观的新东西。
这不是谁虚伪。
这是那个时代最典型的局面:需求跑在前面,原则在后面追。
网页已经越来越像“要被设计的东西”,可大家还没谈拢:到底该用什么方式设计。
是继续往 HTML 里加标签?
还是另开一套样式语言?
这就是 CSS 真正出场前的空气。
04|Håkon 那份提案,真正新在哪里?
讲 CSS 的起源,最容易写成“某天某个人发明了一门语言”。
可真正重要的,通常不是“谁第一个写出来”,而是“为什么偏偏这套东西后来活下来了”。
因为 1994 年前后,样式语言的思路并不只这一条。
除了 Håkon 的提案,当时还有:
- Viola 里的样式思路
- Robert Raisch 更早的方案
- 以及那个在排版世界里非常庞大、非常正式、也非常不适合拿来直接塞进 Web 的 DSSSL
换句话说,CSS 不是唯一候选。
它最后能赢,靠的不是“它最复杂”,恰恰相反,是它抓住了一个别人没抓牢的点:
Web 上的样式,不可能只听作者一个人的。
Håkon 和后来加入的 Bert Bos 很早就意识到,网页和纸张不一样。读者有不同设备、不同屏幕、不同需求,甚至有自己的样式偏好。那怎么办?
他们给出的答案,就是后来写进 CSS 名字里的那个词:
Cascading。
不是作者一票否决。
也不是用户一票否决。
而是把作者、用户、浏览器、设备这几股力量,放进同一个冲突解决机制里。
这事听起来很技术,实际上很政治。
因为它在说:
网页不是出版社独占的成品,它是一种要在用户手里重新成立的媒介。
05|芝加哥那场会,大家很快就吵到理念上了
1994 年 10 月 17 日到 20 日,芝加哥办了第二届国际 WWW 大会,名字很长,叫 “Mosaic and the Web”。
这场会后来在很多 CSS 历史叙述里都被提到。Lie 和 Bos 的回忆、主办方档案、后续文字整理,虽然在个别细节上有出入,但有一点是一致的:
CSS 一拿出来,就不只是技术讨论了。
因为它会逼出一个所有人都绕不开的问题:
如果作者设置了一种展示方式,而用户不喜欢,谁说了算?
这时候争论一下就变得很具体。
支持“作者优先”的人会举例:警示语、法律文本、商业版式,难道能让读者随便改小、改乱吗?
支持“用户优先”的人则会说:最后盯着屏幕的是用户,不是设计师。你不能为了版面整齐,强迫一个视力不好的人按你的字号活。
Lie 和 Bos 后来在书里提到一个很有名的想象图:一根滑杆,一头是 user,一头是 author,可以来回调整权重。
今天看,这像个产品 demo。
但在 1994 年,它其实是在公开问:
网页这东西,到底更像出版物,还是更像一块会被用户重新解释的屏幕?
你如果往后看,就会发现这条线根本没结束。
它后来换了很多外衣:
- 暗黑模式算不算尊重作者原设计
- 浏览器强制字号算不算越权
- 前缀危机时到底该优先“别让网页坏掉”还是“别让单一实现绑架标准”
这些问题表面不一样,底子却很像。
所以 CSS 从第一天起,真正在处理的就不只是样式。
它处理的是权力。
06|1995 年,另一个关键人物来了
接下来,故事里第二个关键名字该出场了:
Bert Bos。
1995 年 4 月,在德国达姆施塔特的 WWW3 会议上,Håkon 和 Bos 第一次见面。
Bos 当时在做一个叫 Argo 的浏览器,也有自己关于样式系统的想法。两人很快决定合流。
这一步非常重要。
因为很多标准不是死在反对者手里,而是死在“支持者彼此不兼容”手里。
CSS 没走上那条路,靠的恰恰是这种早期合流。
而且 Bos 那边带来的一个关键影响是:
这门语言不该只服务 HTML。
所以很快,提案标题里的 HTML 被拿掉了。
只剩下:
Cascading Style Sheets
名字一缩,野心反而大了。
这不再是一套给某一种标记语言临时缝的小衣服,而是一种打算长期活下去的样式机制。
07|再往前一步,吵架终于有了固定场子
1995 年 5 月,www-style 邮件列表成立。
这件事听起来很朴素,但在标准史里意义很大。
因为从这一刻开始,关于 CSS 的争论、细节、修订、拉扯,不再只散落在各处,而是有了一条长期公开的痕迹。
说得俗一点:
吵架终于有了固定街口。
写历史的人喜欢这种列表,因为一封封邮件能把很多后来被洗平了的棱角重新翻出来;当年在场的人未必喜欢,因为这通常意味着另一件事:
邮箱要爆了。
但无论如何,CSS 到这一步,已经不再只是某个个人提案。
它开始有社区、有回应、有反对、有版本演化。
也就是说,它开始像一门真的会继续走下去的语言了。
08|到 1995 年底,它终于走到更大的门口
1995 年,W3C 逐渐运转起来。年底,HTML Editorial Review Board(HTML ERB) 出现,CSS1 被正式拉进更严肃的标准流程里打磨。
到这里,第一篇就该停下来了。
因为再往前,故事的味道要变了。
前面这一篇,讲的是 CSS 为什么会出生。
下一篇开始,讲的是另一件更难看的事:
CSS 出生以后,浏览器厂商到底肯不肯认它。
微软已经动了。
网景也不会装作没看见。
标准还没盖章,厂商就要先下场了。
这时候的 CSS,已经不再只是一个关于样式的提案,而是一块即将被大公司争抢的牌子。
如果你只记一句,那就记这句:
CSS 最早要解决的,不是“网页怎么变漂亮”,而是“网页的外观,究竟该由谁说了算”。
编者注(事实核对):Andreessen 的相关呛声讨论出现在 1994 年 Q1 的 www-talk 归档;Håkon Wium Lie 的提案文档日期为 1994-10-10,同日可在 www-talk 归档中互证;Mozilla 首个 beta 的公告日期为 1994-10-13。芝加哥 “Mosaic and the Web” 大会日期以 IW3C2 档案为准,即 1994-10-17 至 1994-10-20。作者/用户之争、滑杆示意、Bos 加入、www-style 创建等叙述,主要依据 Lie & Bos 第 20 章 与 Bert Bos《A brief history of CSS until 2016》 交叉整理。
关键人物速览
- Håkon Wium Lie:CSS 最早的提案提出者。1994 年在 CERN 工作时放出
Cascading HTML style sheets草案,是这套样式语言最早的推动者之一。 - Bert Bos:CSS 共同奠基者。原本在做带样式能力的
Argo浏览器,后来与 Håkon 合流,把 CSS 从个人提案推向更完整的规范。 - Marc Andreessen:早期 Web 浏览器关键人物,Mosaic 核心开发者之一,后来创办网景。第一篇里那封“别指望像 Word 一样控制网页外观”的冷水回帖,就来自他所代表的那种早期浏览器立场。
- Tim Berners-Lee:万维网发明者。虽然本文不是围着他展开,但 CSS 之所以会被认真对待,离不开他所开启的 Web 基础框架,以及 W3C 后来提供的标准化平台。
- Dave Raggett:早期 HTML 重要推动者,也是在幕后鼓励 CSS 草案尽快公开讨论的人之一。很多“HTML 不该一路长成排版语言”的判断,与他这条线密切相关。
参考与延伸阅读
Lie 首份公开草案(v0.92,文内日期 1994-10-10)
https://www.w3.org/People/howcome/p/cascade.htmlwww-talk 归档:上述提案帖(1994-10-10)
http://1997.webhistory.org/www.lists/www-talk.1994q4/0153.htmlMarc Andreessen 1994 年相关讨论(www-talk,Lie/Bos 第 20 章所引)
http://1997.webhistory.org/www.lists/www-talk.1994q1/0648.htmlLie & Bert Bos 合著第 20 章 The CSS saga(W3C 托管摘录)
https://www.w3.org/Style/LieBos2e/history/Overview.htmlBert Bos《A brief history of CSS until 2016》(W3C)
https://www.w3.org/Style/CSS20/history.html第二届国际 WWW 会议「Mosaic and the Web」档案(1994-10-17 — 10-20,芝加哥)
https://archives.iw3c2.org/www2/www-style 列表说明与归档入口
https://www.w3.org/Mail/Lists#www-styleHåkon Wium Lie(背景与生平,与 1、4 交叉)
https://en.wikipedia.org/wiki/H%C3%A5kon_Wium_Lie
下篇预告:标准还没定,微软和网景已经打起来了。